/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

/**
 *
 * @author Tavo
 */
import dao.PreguntaDAO;
import entity.Inciso;
import entity.Pregunta;
import java.util.*;
import javax.faces.model.SelectItem;
public class BeanOrdenarPregunta
{
    private List<Pregunta> listPreguntasDao;

    PreguntaDAO preDao;
    
    
    private List<BeanPregunta> listPreguntas;
    
    private List<Integer> listPreguntasAleatorio;

    public List<BeanPregunta> getListPreguntas() {
        return listPreguntas;
    }

    public void setListPreguntas(List<BeanPregunta> listPreguntas) {
        this.listPreguntas = listPreguntas;
    }

    public List<Integer> getListPreguntasAleatorio() {
        return listPreguntasAleatorio;
    }

    public void setListPreguntasAleatorio(List<Integer> listPreguntasAleatorio) {
        this.listPreguntasAleatorio = listPreguntasAleatorio;
    }


    public BeanOrdenarPregunta(int num)
    {
        listPreguntasDao=new ArrayList<Pregunta>();
        preDao=new PreguntaDAO();
        listPreguntasDao=preDao.ConsultaPreguntasConIncisos(num);



        listPreguntas=new ArrayList<BeanPregunta>();

        listPreguntasAleatorio=new ArrayList<Integer>();

        CambioLista();
        
        arrayAleatorio();



    }

    public void CambioLista()
    {
        Iterator ite=listPreguntasDao.iterator();
        while(ite.hasNext())
        {
            BeanPregunta bPregunta=new BeanPregunta();

            Pregunta pre=(Pregunta)ite.next();

            bPregunta.setIdPregunta(pre.getIdPregunta());
            bPregunta.setTextoPregunta(pre.getTextoPregunta());
            bPregunta.setImagenCodigo(pre.getImagenCodigo());
            bPregunta.setDescripcion(pre.getDescripcion());
            
            BuscarIncisoCorrecto(bPregunta,pre.getIncisos());

            bPregunta.setListaIncisos(pre.getIncisos());

            bPregunta.setIdTemaEntity(pre.getIdTemaEntity());
            bPregunta.setExamenes(pre.getExamenes());

            listPreguntas.add(bPregunta);
        }

    }



    public void BuscarIncisoCorrecto(BeanPregunta bpre,List<Inciso> lista)
    {
        Iterator itera=lista.iterator();

        List<SelectItem> item=new ArrayList<SelectItem>();
        List<Integer> li=new ArrayList<Integer>();
        while(itera.hasNext())
        {    
            Inciso in=(Inciso)itera.next();

            item.add(new SelectItem(""+in.getIdInciso(),in.getTextoInciso()));
            
            Integer acierto=in.getEsRespuesta();
            
                if(acierto==1)
                {
                    li.add(in.getIdInciso());
                    
                }
            bpre.setIncisosCorrectos(li);
          }

            bpre.setIncisos(item);
        }
    



    public void arrayAleatorio()
    {
        int tamaño=listPreguntas.size();
        int ciclo=0;

        while(ciclo<tamaño)
        {
            Random numAle=new Random();
            int num=numAle.nextInt(tamaño);

            if(ciclo==0)
            {
                listPreguntasAleatorio.add(num);
                ciclo++;
            }

            if(listPreguntasAleatorio.indexOf(num)==-1)
            {
                listPreguntasAleatorio.add(num);
                ciclo++;
            }

        }

    }

}
